#ifndef BULLET_H
#define BULLET_H

#include <QGraphicsPixmapItem>
#include <QTimer>
#include <QTimerEvent>

class Bullet : public QGraphicsPixmapItem {
public:
    // 构造函数，接收起始位置和移动方向
    Bullet(QGraphicsItem *parent = nullptr, const QPixmap &pixmap = QPixmap(), const QPointF &startPos = QPointF(), const QPointF &direction = QPointF(0, 0));

    // 设置移动方向
    void setDirection(const QPointF &direction);

    // 开始移动子弹
    void startMoving(int interval = 100); // 假设每100毫秒移动一次

    // 停止移动子弹
    void stopMoving();
    virtual ~Bullet() {};
protected:
    // 重写QGraphicsItem的timerEvent来处理移动
    void timerEvent(QTimerEvent *event);

private:
    void onTimerTimeout();
    QTimer moveTimer; // 用于控制子弹移动的定时器
    QPointF direction; // 子弹的移动方向
    bool isMoving; // 标记子弹是否正在移动

    // 可能还需要一个默认的图片路径，用于当pixmap为空时加载
    // static const char* DEFAULT_BULLET_PIXMAP_PATH;
};

#endif // BULLET_H
